package datatypes;

public class ADTZahl extends ADTWert
{
	private double wert;

	
	public ADTZahl() 
	{
	}
	
	public ADTZahl(double wert) 
	{
		super();
		this.wert = wert;
		this.variable = null;
		this.hochwert = null;
	}
	
//	public ADTZahl(double wert, ADTWert hochwert) 
//	{
//		super();
//		this.wert = wert;
//		this.variable = null;
//		this.hochwert = hochwert;
//	}
	
	public ADTZahl(double wert, ADTWert variable, ADTWert hochwert) 
	{
		super();
		this.wert = wert;
		this.variable = variable;
		this.hochwert = hochwert;
	}

	public double getErgebnis()
	{
		if(hochwert == null && variable == null)
		{
			return wert;				
		}
		else if(hochwert == null)
		{
			return wert * variable.getErgebnis();
		}
		else if(variable == null)
		{
			return Math.pow(wert, hochwert.getErgebnis());
		}
		else
		{
			return wert * Math.pow(variable.getErgebnis(), hochwert.getErgebnis());
		}
	}
	
	public double getWert()
	{
		return wert;
	}

	public void setWert(ADTWert wert) 
	{
		//TODO
		this.wert = wert.getErgebnis();
	}
}
